/**
 *reduce(callback[, initialValue])方法接收一个函数作为累加器（accumulator），数组中的每个值（从左到右）开始合并，最终为一个值。initialValue可选参数，表示初始值
 */
var sum = [1, 2, 3, 4].reduce(function (previous, current, index, array) {
    return previous + current;
})
console.log(sum)//10

/*说明：
 因为initialValue不存在，因此一开始的previous值等于数组的第一个元素。
 从而current值在第一次调用的时候就是2.
 最后两个参数为索引值index以及数组本身array.*/
//执行过程如下:

/**
 *1、初始设置:
 *  previous=initialValue=1,current=2
 *2、第一个迭代:
 *  previous=(1+2),current=3
 *3、第二次迭代:
 *  previous=(3+3),current=6
 *4、第三次迭代:
 *  previous=(4+6).current=10
 */


